import { CommonWindow } from "./windowManager";
import { waterIcon } from './icon'
import { showContextMenu } from './contextMenu'
import { ipcMain, IpcMainInvokeEvent } from "electron";
import { storageInfo, Count, getInfoList } from './storageUtils';

export function createMainWindow() {
  const mainWin = new CommonWindow({
    width: 60,
    height: 60,
    // center: true, // 窗口居中
    show: false, // 创建时先不显示
    frame: false, // 边框
    transparent: true, // 透明
    autoHideMenuBar: true, // 自动隐藏菜单栏
    resizable: false, // 窗口缩放
    alwaysOnTop: true, // 窗口置顶
    minimizable: true, // 不允许最小化
    maximizable: true, // 不允许最大化
    icon: waterIcon,
    // skipTaskbar: true, // 不显示在任务栏
  })

  // 窗口图标不在系统任务栏中显示
  mainWin.setSkipTaskbar(true)
  // 设置窗口位置
  //mainWin.initWinPosition("mainWinPosition")
  // 监听窗口移动事件
  mainWin.winMoveEventListener("mainWinPosition")
  // 设置右键菜单
  showContextMenu(mainWin.getWindow()!)
  // 监听保存信息事件
  saveInfoListener()
  getInfoEventListener()
  return mainWin
}

function saveInfoListener() {
  ipcMain.on("save-info-event", (_event, key:string, count: Count) => {
    storageInfo(key, count)
  })
}


function getInfoEventListener() {
  ipcMain.handle('get-info-list-async-event', (_event: IpcMainInvokeEvent, startDate: Date, endDate: Date) => {
    return getInfoList(startDate, endDate)
  })
}
